home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / guienv374.lha / GUIEnvironment / M2Amiga / Modules / GUIEnvSupport.mod < prev   
Text File  |  1994-09-14  |  3KB  |  78 lines

  1. (****************************************************************************
  2.  
  3. $RCSfile: GUIEnvSupport.mod $
  4.  
  5. $Revision: 1.3 $
  6.     $Date: 1994/09/14 17:40:55 $
  7.  
  8.     Some needful extra definitions and functions for GUIEnvironment
  9.  
  10.     M2Amiga Modula-2 Compiler V4.3
  11.  
  12.   Copyright © 1994, Carsten Ziegeler
  13.                     Augustin-Wibbelt-Str.7, 33106 Paderborn, Germany
  14.  
  15. ****************************************************************************)
  16. IMPLEMENTATION MODULE GUIEnvSupport;
  17.  
  18.   (*$ StackParms:=FALSE Volatile:=FALSE EntryClear:=FALSE LongAlign:=TRUE *)
  19.   (*$ NilChk:=FALSE StackChk:=FALSE ReturnChk:=FALSE RangeChk:=FALSE *)
  20.   (*$ OverflowChk:=FALSE CaseChk:=FALSE *)
  21.  
  22.   FROM SYSTEM     IMPORT ADR, ADDRESS, CAST;
  23.   FROM GraphicsD  IMPORT TextAttr, TextAttrPtr;
  24.   FROM String     IMPORT Copy;
  25.   FROM UtilityD   IMPORT HookPtr, TagItemPtr;
  26. IMPORT R,
  27.        D : GUIEnvD,
  28.        L : GUIEnvL,
  29.        Gt: GadToolsD,
  30.        Id: IntuitionD;
  31.  
  32. TYPE STRPTR = POINTER TO ARRAY[0..255] OF CHAR;
  33.      LINTPTR= POINTER TO LONGINT;
  34.  
  35.  
  36.   PROCEDURE GADDESC(left, top, width, height : CARDINAL):LONGCARD;
  37.   BEGIN
  38.     RETURN LONGCARD(left)*256*256*256+LONGCARD(top)*256*256+LONGCARD(width)*256+LONGCARD(height);
  39.   END GADDESC;
  40.  
  41.   PROCEDURE GADOBJS(left, top, width, height : CARDINAL):LONGCARD;
  42.   BEGIN
  43.     RETURN LONGCARD(left)*256*256*256+LONGCARD(top)*256*256+LONGCARD(width)*256+LONGCARD(height);
  44.   END GADOBJS;
  45.  
  46.   PROCEDURE TopazAttr():TextAttrPtr;
  47.   BEGIN
  48.     RETURN ADR(TextAttr{name: ADR("topaz.font"), ySize: 8});
  49.   END TopazAttr;
  50.  
  51.   PROCEDURE UpdateEntryGadget(gui : D.GUIInfoPtr;
  52.                               gadget : Id.GadgetPtr) : LONGINT;
  53.   VAR GINFO : D.GUIGadgetInfoPtr;
  54.       VA    : ADDRESS;
  55.   BEGIN
  56.     GINFO := D.GUIGadgetInfoPtr(gadget^.userData);
  57.     VA := CAST(ADDRESS, L.GetGUIGadget(gui, gadget^.gadgetID, D.gegVarAddress));
  58.     IF VA # NIL THEN
  59.       CASE GINFO^.kind OF
  60.         Gt.integerKind : LINTPTR(VA)^ := Id.StringInfoPtr(gadget^.specialInfo)^.longInt;
  61.                          RETURN 1;
  62.       | Gt.stringKind  : Copy(STRPTR(VA)^, STRPTR(Id.StringInfoPtr(gadget^.specialInfo)^.buffer)^);
  63.                          RETURN 1;
  64.       ELSE
  65.       END;
  66.     END;
  67.     RETURN 0;
  68.   END UpdateEntryGadget;
  69.  
  70.   PROCEDURE GEUpdateEntryGadgetAHook(hook{R.A0} : HookPtr;
  71.                                      gadget{R.A2} : Id.GadgetPtr;
  72.                                      unused{R.A1} : ADDRESS) : LONGINT;
  73.   BEGIN
  74.     RETURN UpdateEntryGadget(hook^.data, gadget);
  75.   END GEUpdateEntryGadgetAHook;
  76.  
  77. END GUIEnvSupport.
  78.